/**
 * DEPENDENCIAS:
 * nenhuma
 * 
 * FUNCIONALIDADE:
 * Funcoes que servem de suporte para o modulo meusDatatables e meusCRUD 
 */

/*
 seleciona objeto clicado em uma datagrid
 trata de forma diferente os browsers
 */
function selecionarObjeto(event, idDataGrid){
	
	var objetoSelecionado=null;
	
	if($.browser.chrome || $.browser.safari || $.browser.opera){
		var id = $(event.target).parent().attr("id").split("_")[$(event.target).parent().attr("id").split("_").length-1];
		var aTrs = $('#'+idDataGrid).dataTable().fnSettings().aoData;
		for(var i=0; i< aTrs.length; i++){
			if(aTrs[i]._aData.id==id){ 
				objetoSelecionado = aTrs[i]._aData;
			}
		}
	}else if($.browser.mozilla){
		var clickedTr = $(event.target).parent("td").parent("tr").get(0);
	  	var aTrs = $('#'+idDataGrid).dataTable().fnSettings().aoData;
	  	for(var i=0; i< aTrs.length; i++){
	  		if(aTrs[i].nTr==clickedTr){
	  			objetoSelecionado = aTrs[i]._aData;
	  		}
	  	}
	}else{
		var clickedTr = $(event.target).parent("td").parent("tr").get(0);
	  	var aTrs = $('#'+idDataGrid).dataTable().fnSettings().aoData;
	  	for(var i=0; i< aTrs.length; i++){
	  		if(aTrs[i].nTr==clickedTr){
	  			objetoSelecionado = aTrs[i]._aData;
	  		}
	  	}
	}
	
	alert(objetoSelecionado);
  	
  	return objetoSelecionado;
}

/*
seleciona a linha <tr> clicada em uma datagrid
trata de forma diferente os browsers
*/
function selecionarTr(event, idDataGrid){
	
	var tr=null;
	
	if($.browser.chrome || $.browser.safari || $.browser.opera){
		var id = $(event.target).parent().attr("id").split("_")[$(event.target).parent().attr("id").split("_").length-1];
		var aTrs = $('#'+idDataGrid).dataTable().fnSettings().aoData;
		for(var i=0; i< aTrs.length; i++){
			if(aTrs[i]._aData.id==id){
				tr = aTrs[i].nTr;
			}
		}
	}else if($.browser.mozilla){
		var clickedTr = $(event.target).parent("td").parent("tr").get(0);
	  	var aTrs = $('#'+idDataGrid).dataTable().fnSettings().aoData;
	  	for(var i=0; i< aTrs.length; i++){
	  		if(aTrs[i].nTr==clickedTr){
	  			tr = aTrs[i].nTr;
	  		}
	  	}
	}else{
		var clickedTr = $(event.target).parent("td").parent("tr").get(0);
	  	var aTrs = $('#'+idDataGrid).dataTable().fnSettings().aoData;
	  	for(var i=0; i< aTrs.length; i++){
	  		if(aTrs[i].nTr==clickedTr){
	  			tr = aTrs[i].nTr;
	  		}
	  	}
	}
	
  	
  	return tr;
}

/*
remove o css de selecao de linha de todas as linhas da datagrid
*/
function selectNone(id){
	eval('trs = $("#'+id+' tbody tr");');
	for ( var i=0 ; i<trs.length ; i++ ){
		$(trs[i]).removeClass('row_selected');
	}
}

/*
aplica o css de selecao de linha de todas as linhas da datagrid
*/
function selectAll(id){
	eval('trs = $("#'+id+' tbody tr");');
	for ( var i=0 ; i<trs.length ; i++ ){
		$(trs[i]).addClass('row_selected');
	}
}

/*
obtem os objetos selecionados na datagrid
*/
function fnGetSelected(id){
	var aReturn = new Array();
	var aTrs = $('#'+id).dataTable().fnSettings().aoData;
	for ( var i=0 ; i<aTrs.length ; i++ ){
		if ( $(aTrs[i].nTr).hasClass('row_selected') ){
			aReturn.push( aTrs[i]._aData );
		}
	}
	return aReturn;
}

/*
obtem as linhas selecionadas na datagrid
*/
function fnGetSelectedsTr(id){
	var aReturn = new Array();
	var aTrs = $('#'+id).dataTable().fnSettings().aoData;
	for ( var i=0 ; i<aTrs.length ; i++ ){
		if ( $(aTrs[i].nTr).hasClass('row_selected') ){
			aReturn.push( aTrs[i].nTr );
		}
	}
	return aReturn;
}

/*
obtem os dados de uma datagrid
*/
function serializarDataGrid(idDataGrid){
    var array = $('#'+idDataGrid).dataTable().fnGetData();
   	var arrayRetorno= [];
    for(var i=0; i<array.length; i++){
    	var itemNovo = array[i];
    	delete itemNovo.htmlControl;
    	arrayRetorno[i]=itemNovo;
    }
	return arrayRetorno;
}
